package com.ruoyi.labdata.domain;

import java.util.Date;
import java.util.List;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;

/**
 * 实验室预约对象 lab_reservation
 * 
 * @author ruoyi
 * @date 2022-03-27
 */
public class LabReservation extends  LabFlowInstance {

    public LabReservation(String flowName, Long collegeOrgId, Long totalSeats, String instrumentDeviceId, String experimentalProject, Long classRoomId, Integer sectionStart,  Integer sectionEnd, Date appointmentTime, String flowCreation, Long createUserId, String createBy, List<LabFile> images, List<LabReservationParameterPersonnel> appointmentList, List<LabReservationParameterPersonnel> participationList) {
        this.flowName = flowName;
        this.collegeOrgId = collegeOrgId;
        this.totalSeats = totalSeats;
        this.instrumentDeviceId = instrumentDeviceId;
        this.experimentalProject = experimentalProject;
        this.classRoomId = classRoomId;
        this.sectionStart = sectionStart;
        this.sectionEnd = sectionEnd;
        this.appointmentTime = appointmentTime;
        this.flowCreation = flowCreation;
        this.createUserId = createUserId;
        this.createBy = createBy;
        this.images = images;
        this.appointmentList = appointmentList;
        this.participationList = participationList;
        
    }
    

    private static final long serialVersionUID = 1L;

    /**
     * 项目创建业务类型.
     */
    private static final String businessTypeOpt = "labReservationApplication";

    public LabReservation(){
        super.setBusinessTypeOpt(businessTypeOpt);
    }

    /** 流程名称 */
    @Excel(name = "流程名称")
    private String flowName;

    /** 预约学院 */
    @Excel(name = "预约学院")
    private Long collegeOrgId;

    /** 工位数 */
    private Long totalSeats;

    /** 预约工位数 */
    private Integer reserveSeats;

    /** 预约仪器 */
    @Excel(name = "预约仪器")
    private String instrumentDeviceId;

    /** 实验项目 */
    @Excel(name = "实验项目")
    private String experimentalProject;

    /** 实验室 */
    @Excel(name = "实验室")
    private Long classRoomId;

    /** 开始节次 */
    private Integer sectionStart;

    /** 结束节次 */
    private Integer sectionEnd;

    /** 预约日期 */
    @JSONField(format = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date appointmentTime;

    /** 流程创建 */
    @Excel(name = "流程创建")
    private String flowCreation;

    /** 创建人id */
    private Long createUserId;

    /** 创建人id */
    private String createBy;
    
    /** 星期 */
	@Excel(name = "星期")
	private Long weekDayOpt;
	
    /** 节次开始 */
    private Integer weekStart;

    /** 节次结束 */
    private Integer weekEnd;

    /** 审批状态 */
    private String status;
    
    private Integer blackCommitFlag;

    private Date courseDate;
    
    private String classNo;
    

    public String getClassNo() {
		return classNo;
	}

	public void setClassNo(String classNo) {
		this.classNo = classNo;
	}


	/** 课程预定时间 */
    private String sksj;
    /** 课程选择数据 */
    private String chooseData;

    public String getSksj() {
        return sksj;
    }

    public void setSksj(String sksj) {
        this.sksj = sksj;
    }

    public String getChooseData() {
        return chooseData;
    }

    public void setChooseData(String chooseData) {
        this.chooseData = chooseData;
    }

    public Date getCourseDate() {
        return courseDate;
    }

    public void setCourseDate(Date courseDate) {
        this.courseDate = courseDate;
    }

    public Integer getBlackCommitFlag() {
		return blackCommitFlag;
	}

	public void setBlackCommitFlag(Integer blackCommitFlag) {
		this.blackCommitFlag = blackCommitFlag;
	}


	private List<LabFile> images;

    //预约人员
    private List<LabReservationParameterPersonnel>  appointmentList;
    //参与人员
    private List<LabReservationParameterPersonnel> participationList;

    public List<LabReservationParameterPersonnel> getAppointmentList() {
        return appointmentList;
    }

    public void setAppointmentList(List<LabReservationParameterPersonnel> appointmentList) {
        this.appointmentList = appointmentList;
    }

    public List<LabReservationParameterPersonnel> getParticipationList() {
        return participationList;
    }

    public void setParticipationList(List<LabReservationParameterPersonnel> participationList) {
        this.participationList = participationList;
    }



    @Override
    public String getCreateBy() {
        return createBy;
    }

    @Override
    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public List<LabFile> getImages() {
        return images;
    }

    public void setImages(List<LabFile> images) {
        this.images = images;
    }

    public void setFlowName(String flowName)
    {
        this.flowName = flowName;
    }

    public String getFlowName() 
    {
        return flowName;
    }
    public void setCollegeOrgId(Long collegeOrgId) 
    {
        this.collegeOrgId = collegeOrgId;
    }

    public Long getCollegeOrgId() 
    {
        return collegeOrgId;
    }
    public void setTotalSeats(Long totalSeats) 
    {
        this.totalSeats = totalSeats;
    }

    public Long getTotalSeats() 
    {
        return totalSeats;
    }


    public Integer getReserveSeats() {
        return reserveSeats;
    }

    public void setReserveSeats(Integer reserveSeats) {
        this.reserveSeats = reserveSeats;
    }

    public String getInstrumentDeviceId() {
        return instrumentDeviceId;
    }

    public void setInstrumentDeviceId(String instrumentDeviceId) {
        this.instrumentDeviceId = instrumentDeviceId;
    }

    public void setExperimentalProject(String experimentalProject)
    {
        this.experimentalProject = experimentalProject;
    }

    public String getExperimentalProject() 
    {
        return experimentalProject;
    }
    public void setClassRoomId(Long classRoomId) 
    {
        this.classRoomId = classRoomId;
    }

    public Long getClassRoomId() 
    {
        return classRoomId;
    }
    public void setSectionStart(Integer sectionStart)
    {
        this.sectionStart = sectionStart;
    }

    public Integer getSectionStart()
    {
        return sectionStart;
    }
    public void setSectionEnd(Integer sectionEnd)
    {
        this.sectionEnd = sectionEnd;
    }

    public Integer getSectionEnd()
    {
        return sectionEnd;
    }
    public void setAppointmentTime(Date appointmentTime) 
    {
        this.appointmentTime = appointmentTime;
    }

    public Date getAppointmentTime() 
    {
        return appointmentTime;
    }
    public void setFlowCreation(String flowCreation) 
    {
        this.flowCreation = flowCreation;
    }

    public String getFlowCreation() 
    {
        return flowCreation;
    }
    public void setCreateUserId(Long createUserId)
    {
        this.createUserId = createUserId;
    }

    public Long getCreateUserId()
    {
        return createUserId;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }
    
    

    public Long getWeekDayOpt() {
		return weekDayOpt;
	}

	public void setWeekDayOpt(Long weekDayOpt) {
		this.weekDayOpt = weekDayOpt;
	}

	public Integer getWeekStart() {
		return weekStart;
	}

	public void setWeekStart(Integer weekStart) {
		this.weekStart = weekStart;
	}

	public Integer getWeekEnd() {
		return weekEnd;
	}

	public void setWeekEnd(Integer weekEnd) {
		this.weekEnd = weekEnd;
	}

	@Override
    public String toString() {
        return "LabReservation{" +
                "flowName='" + flowName + '\'' +
                ", collegeOrgId=" + collegeOrgId +
                ", totalSeats=" + totalSeats +
                ", reserveSeats=" + reserveSeats +
                ", instrumentDeviceId='" + instrumentDeviceId + '\'' +
                ", experimentalProject='" + experimentalProject + '\'' +
                ", classRoomId=" + classRoomId +
                ", sectionStart='" + sectionStart + '\'' +
                ", sectionEnd='" + sectionEnd + '\'' +
                ", appointmentTime=" + appointmentTime +
                ", flowCreation='" + flowCreation + '\'' +
                ", createUserId=" + createUserId +
                ", createBy='" + createBy + '\'' +
                ", status='" + status + '\'' +
                ", images=" + images +
                ", appointmentList=" + appointmentList +
                ", participationList=" + participationList +
                '}';
    }
}
